Computer systems generally use a memory hierarchy to meet the memory size and memory speed requirements for a given system. A memory hierarchy can include multiple levels of memory having different speeds and sizes. Levels within or closer to a processor core are generally faster and smaller than levels farther from the processor core. For example, the fastest level, closest to the processor core, can include a cache memory implemented with static random access memory (SRAM). An intermediate level can include main memory implemented with dynamic random access memory (DRAM). The next level further from the processor core can include block or bulk storage which is often implemented with a hard disk drive. An alternative form of bulk storage can be implemented using a solid-state nonvolatile medium such as flash memory. Flash memory and other solid-state technology can potentially provide an increase in speed, a decrease in power consumption, and an increase in shock-resistance compared to hard disk drives. However, solid-state nonvolatile media can have different properties than hard disk drives and methods for accessing the information from the nonvolatile media can differ from methods used for other bulk storage technologies.